/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package controladores;

import java.awt.event.ActionEvent;
import MetodoFabricacion.FabricaIngrediente;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import modelos.ModeloIngrediente;
//import modelos.ModeloProducto;
import vistas.VistaIngrediente;

/**
 *
 * @author usuario
 */
public class ControladorIngrediente implements  ActionListener{

    private VistaIngrediente vista;
    private ModeloIngrediente modelo;
    private FabricaIngrediente fab;

    public ControladorIngrediente(VistaIngrediente vista) {
        this.vista = vista;
        
        fab=new FabricaIngrediente();
        modelo= (ModeloIngrediente)fab.fabricar();
        
     
    }

    public void actionPerformed(ActionEvent ae) {
        if(ae.getActionCommand().equals("Registrar")){
            if(vista.validarVacios())
                if(vista.validarNumeros()){
                    modelo.setDescripcion(vista.getTxtDescripcion().getText());

                    modelo.setId(Integer.parseInt(vista.getTxtCodigo().getText()));
                    modelo.setStatus("A");
                    modelo.setStock(Float.parseFloat(vista.getTxtCantidad().getText()));
                    modelo.setPrecio(Float.parseFloat(vista.getTxtPrecio().getText()));
                    if(modelo.registar()){
                        JOptionPane.showMessageDialog(new JFrame(),"El ingrediente se ha registrado exitosamente","Burguer",JOptionPane.INFORMATION_MESSAGE);
                        vista.cancelar();
                    }
                   else{
                        JOptionPane.showMessageDialog(new JFrame(),"El codigo o la descripcion ya se encuentran registrados ","Burguer",JOptionPane.INFORMATION_MESSAGE);
                  }
                }
                else
                    JOptionPane.showMessageDialog(new JFrame(),"Valores numericos no pemitidos","Burguer",JOptionPane.WARNING_MESSAGE);
            else
                JOptionPane.showMessageDialog(new JFrame(),"Existen campos vacios","Burguer",JOptionPane.WARNING_MESSAGE);

        }
            else if(ae.getActionCommand().equals("Consultar")){
                modelo.setId(Integer.parseInt(vista.getTxtCodigo().getText()));
                modelo.setStatus("A");
                if(modelo.consultar()){
                    vista.getTxtCodigo().setEditable(false);
                    vista.getTxtDescripcion().setText(modelo.getDescripcion());
                    vista.getTxtCantidad().setText(""+modelo.getStock());
                    vista.getTxtPrecio().setText(""+modelo.getPrecio());
                    vista.getTxtCantidad().setEditable(false);
                    vista.mostrar(true);
                }
                else{
                    JOptionPane.showMessageDialog(new JFrame(),"El codigo ingresado no pertenece a ningun ingrediente","Burguer",JOptionPane.WARNING_MESSAGE);
                }
            }
            else if(ae.getActionCommand().equals("Generar")){
                modelo.conectar();
                vista.getTxtCodigo().setText(""+(modelo.contarRegistros("Ingrediente")+1));
                vista.getTxtCodigo().setEditable(false);
                modelo.desconectar();
            }
            else if(ae.getActionCommand().equals("Salir")){
                vista.hide();
            }
            else if(ae.getActionCommand().equals("Eliminar")){
                modelo.setId(Integer.parseInt(vista.getTxtCodigo().getText()));
                modelo.setStatus("A");
                if(modelo.eliminar()){
                        JOptionPane.showMessageDialog(new JFrame(),"El ingrediente ha sido eliminado exitosamente","Burguer",JOptionPane.INFORMATION_MESSAGE);
                        vista.cancelar();
                }
                else{
                    JOptionPane.showMessageDialog(new JFrame(),"El codigo ingresado no pertenece a ningun ingrediente","Burguer",JOptionPane.WARNING_MESSAGE);
                }
            }
            else if(ae.getActionCommand().equals("Actualizar")){
                modelo.setId(Integer.parseInt(vista.getTxtCodigo().getText()));
                modelo.setStatus("A");
                modelo.setStock(Float.parseFloat(vista.getTxtCantidad().getText())+Float.parseFloat(vista.getTxtCantCom().getText()));
                modelo.setPrecio(Float.parseFloat(vista.getTxtPrecio().getText()));
                modelo.setDescripcion(vista.getTxtDescripcion().getText());
                if(modelo.actualizar()){
                        JOptionPane.showMessageDialog(new JFrame(),"El ingrediente ha sido actualizado exitosamente","Burguer",JOptionPane.INFORMATION_MESSAGE);
                        vista.cancelar();
                }
                else{
                    JOptionPane.showMessageDialog(new JFrame(),"El codigo ingresado no pertenece a ningun ingrediente","Burguer",JOptionPane.WARNING_MESSAGE);
                }
            }
            else{
                vista.cancelar();
            }
    }

}
